Many modern applications use different programs and/or object components to search for matching strings. For example, a word processing application may search for a specific word within a text document; a compiler may search for tokens or reserved words in source code during compilation; a practical extraction and reporting language (Perl) interpreter may perform a search within a document to locate strings that match a pattern specified via a regular expression.